// pages/call/group/text-call/text-call.js
const httpUtils = require('../../../utils/httpUtil')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    defaultConfNum: '3099',
    myGroups: [],
    selectedDeviceIds: [],
    selectedDeviceIdsCache: [],
    text: '山洪来了，请大家转移到安全地带！',
    calling: false,
    callIds: [],
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    let textCache = wx.getStorageSync('text');
    if (textCache != null && textCache.length > 0) {
      console.log("textCache: "+textCache);
      this.setData({
        text: textCache
      })
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    if (this.data.calling) {
      this.hangup();
    }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  onTextAreaBlur(e) {
    this.setData({
      text: e.detail.value
    })
  },

  onSelectionChange(e) {
    console.log('Selection changed in page:', e.detail.selectedDeviceIds);
    this.setData({
      selectedDeviceIds: e.detail.selectedDeviceIds
    });
  },

  textCall(e) {
    if (this.data.selectedDeviceIds.length < 1) {
      wx.showToast({
        title: '请至少选择一个设备',
        icon: 'error'
      })
      return;
    }

    if (this.data.text.replace(/\s*/g,"").length < 1) {
      wx.showToast({
        title: '文本不能为空',
        icon: 'error'
      })
      return;
    }

    let formatText = this.data.text.replace(/\s*/g, "");

    wx.setStorageSync('text', formatText);

    console.log('播放 TTS：'+formatText);
    this.playTTS2(formatText);
  },

  endCall() {
    this.hangup();
  },

  hangup() {
    httpUtils.request({
      'method': 'POST',
      'url': '/prod-api/interface/hangUpText',
      'showLoading': true,
      'message': '挂断中',
      'data': {
        'callIds': this.data.callIds
      }
    }).then(res => {
      if (res.data.code == 200) {
        this.data.calling = false;
      }
      wx.navigateBack();
    }).catch(e => {
      wx.showToast({
        title: '挂断出错',
        icon: 'error'
      })
    });
  },

  hangup2() {
    // httpUtils.request({
    //   'method': 'POST',
    //   'url': '/prod-api/interface/hangUp',
    //   'showLoading': true,
    //   'message': '挂断中',
    //   'data': {
    //     'conferenceNumber': this.data.defaultConfNum
    //   }
    // }).then(res=>{
    //   if (res.data.code == 200) {
        this.data.calling = false;
      // }
      wx.navigateBack();
    // });
  },

  playTTS(text) {
    httpUtils.request({
      'method': 'POST',
      'url': '/prod-api/interface/call',
      'showLoading': true,
      'message': '播放语音',
      'data': {
        'conferenceNumber': this.data.defaultConfNum,
        'numbers': this.data.selectedDeviceIds,
        'message': text,
        'isTTS': true
      }
    }).then(res=>{
      if (res.data.code == 200) {
        httpUtils.request({
          'method': 'POST',
          'url': '/prod-api/interface/playVoice',
          'showLoading': true,
          'message': '播放语音',
          'data': {
            'conferenceNumber': this.data.defaultConfNum,
            'numbers': this.data.selectedDeviceIds,
            'message': text,
            'isTTS': true
          }
        }).then(res=>{
          if (res.data.code == 200) {
            this.setData({
              calling: true,
            });
          }
        });
      }
    });
  },

  playTTS2(text) {
    httpUtils.request({
      'method': 'POST',
      'url': '/prod-api/interface/sendText',
      'showLoading': true,
      'message': '播放语音',
      'data': {
        'numbers': this.data.selectedDeviceIds,
        'message': text,
      }
    }).then(res=>{
      if (res.data.code == 200) {
        // this.setData({
        //   calling: true,
        //   callIds: res.data.data
        // });
        const url = '/pages/call/answer/answer?callId='+res.data.msg+'&callType=1&callContent='+text+'&callDeviceIds='+res.data.data;
        console.log('跳转链接：'+url);

        wx.navigateTo({
          url: url,
        });

      } else {
        wx.showToast({
          title: '文本喊话失败',
          icon: 'error'
        })
      }
    }).catch(e=>{
      wx.showToast({
        title: '文本喊话出错',
        icon: 'error'
      })
    });
  }
})